<?php
/* 定义这个常量是为了在application.ini中引用*/
define('APPLICATION_PATH',  dirname(__FILE__));
require APPLICATION_PATH . '/vendor/autoload.php';
function exception_handler($exception) {
    // 创建一个新的请求对象，并将当前异常传递给它
    $request = new Yaf\Request\Http();
    $request->setControllerName("Error")
        ->setActionName("error")
        ->setParam("exception", $exception);
    // 调用 YAF 的调度器来处理这个请求

    Yaf\Application::app()->getDispatcher()->dispatch($request);
}
function error_handler($errno, $errstr, $errfile, $errline) {
    // 将错误转换为异常，便于统一处理
    throw new ErrorException($errstr, $errno, 0, $errfile, $errline);
}
// 设置自定义的异常和错误处理程序
set_exception_handler('exception_handler');
set_error_handler('error_handler');
$application = new \Yaf\Application( APPLICATION_PATH . "/conf/application.ini");
$route = new Yaf\Route\Rewrite(
    "/test/:action",
    array(
        'controller' => 'Test', // 控制器名，包含命名空间
        'action'     => 'index' // 默认动作
    )
);

$application->getDispatcher()->getRouter()->addRoute('test', $route);
$application->bootstrap()->run();
?>
